Vytvoreni db z programu

Otázka od: Kalhous

8. 11. 2004 8:19

D7,InterBase/FireBird
Muzete mi nekdo poradit co pouzit kdyz chci vytvorit novou databazi primo z
programu a/nebo upgradovat strukturu stavajici pri zmene verze programu? Cili
spustit kompletni vytvareci skript. Muzu sice z programu spustit iSQL a
podstrcit mu skript jako vstup ale to se mi moc nelibi.
Ostatne jsem u iSQL narazil na zahadu - i kdyz je nastaveno SET NAMES WIN1250,
v CREATE TABLE vyhazuje v definici sloupcu COLLATE PXW_CSY jako nepouzitelne
pro tuto znakovou sadu. A nejvetsi zahada je pro mne v tom, ze ne u vsech
znakovych atributu - u nekterych to projde, u jinych ne. Stejny skript treba
pres IBConsole projde bez problemu.

Z.Kalhous
ToWare s.r.o.


Odpovedá: Milan Tomes

8. 11. 2004 9:21

Set names je prikaz pro konzoli, ktery urcuje znakovou sadu pro pripojeni
(je tedy nutno jej volat pred pripojenim k databazi) a COLLATE je prikaz pro
SQL server, ktery urcuje trideni. COLLATE je zavisly na znakove sade pouzite
pri zakladani databaze.

Takze pokud chces aby Ti to fungovalo, tak musis udelat nasledujici:

1. SET NAMES WIN1250;

2. CONNECT .....;
nebo
2. CREATE DATABASE ... DEFAULT CHARACTER SET WIN1250;

3. CREATE TABLE AAA (
  TEXT VARCHAR(2000) COLLATE PXW_CSY
);

Z programu nemusis volat Set names, protoze to vlastne nastavis v
parametrech pripojeni k databazi (viz lc_ctype=WIN1250)

S pozdravem

Milan Tomes


> [mailto:delphi-l-owner@clexpert.cz]On Behalf Of Kalhous
> Sent: Monday, November 08, 2004 8:19 AM
>
> Muzete mi nekdo poradit co pouzit kdyz chci vytvorit novou
> databazi primo z programu a/nebo upgradovat strukturu stavajici
> pri zmene verze programu? Cili spustit kompletni vytvareci
> skript. Muzu sice z programu spustit iSQL a podstrcit mu skript
> jako vstup ale to se mi moc nelibi.
> Ostatne jsem u iSQL narazil na zahadu - i kdyz je nastaveno SET
> NAMES WIN1250, v CREATE TABLE vyhazuje v definici sloupcu COLLATE
> PXW_CSY jako nepouzitelne pro tuto znakovou sadu. A nejvetsi
> zahada je pro mne v tom, ze ne u vsech znakovych atributu - u
> nekterych to projde, u jinych ne. Stejny skript treba pres
> IBConsole projde bez problemu.